#include "main.h"

//初始化队结构体
PQueue Init_Queue(void){
	pList_t p=(pList_t)malloc(sizeof(List_t));
	if(NULL == p)
	{
		perror("malloc error");
		return NULL;
	}
	p->next=NULL;
	PQueue p1 = (PQueue)malloc(sizeof(Queue_t));
	if(NULL==p1){
		perror("malloc error");
		return NULL;
	}
	p1->head=p;
	p1->tail=p;
	return p1;
}
//插入操作
void Insert_tail(pList_t head,pList_t p){
	p->next=head->next;
	head->next=p;
}
//入队操作
void IN_Queue(PQueue head,TYPE d){
	pList_t p=(pList_t)malloc(sizeof(List_t));
	if(NULL == p)
	{
		perror("malloc error");
		return;
	}
	p->data=d;
	Insert_tail(head->tail,p);
	head->tail=p;
}
//出队
void OUT_Queue(PQueue p,TYPE *d){
	if(p->head==p->tail){
		printf("不好意思，队空\n");
		return;
	}
	pList_t node = p->head;
	p->head=p->head->next;
	*d=p->head->data;
	printf("%d出队了\n",*d);
	node->next=NULL;
	free(node);
}
//正向遍历
void display(PQueue p){
	printf("遍历结果为:\n");
	pList_t node=p->head;
	while(node!=p->tail){
		node=node->next;
		printf("%d ",node->data);
	}
	printf("\n");
}